/* 
 * File:   CPartida.h
 */

#ifndef CPARTIDA_H
#define	CPARTIDA_H
#include <cstddef>
#include "../interfacesCol/ICollection.h"
#include "../dataTypes/String.h"
#include "../dataTypes/dataJAux.h"
#include "../dataTypes/dataUnidad.h"
#include "../interfacesCol/IDictionary.h"
#include "../headers/Partida.h"
#include "../interfaces/IPartida.h"


class CPartida : public IPartida{
private:
    static CPartida* instancia;
    CPartida();
    String* nomPartida;
    String* nomMapa;
    IDictionary* tiposUnidad;//tipoUnidad
    ICollection* nomsTU;//String
    int limite;
    String* nomJ;//OJO TIENE Q SER UNA LISTA
    String* nomT;//ojo!!! tiene q sedr una lista
    ICollection* ldeLnomt;//necesito para cada jugador su lista de terrs a dom
    ICollection* lDJAux;//dataJAux
    ICollection* tADom;
public:
    static CPartida* getInstancia();
    void ingresarDatosPartida(String*,String*);
    ICollection* listarTipoUnidad();
    void agregarTipoUnidad(String*);
    void ingresarLimite(int);
    ICollection* listarTerritorios();
    ICollection* listarMails();
    void ingreseJugador(String*,String*,dataUnidad*,String*);
    void ingresarJugador(String*);
    void ingresarNomTerritorio(String*);
    bool crearPartida();
    String* getNomPartida();


  //  void setNomPartida(char*);
    //void setNomMapa(char*);
    bool fueUtilizado(char*);
    virtual ~CPartida();

     //   CPartida(const CPartida& orig);
};

#endif	/* CPARTIDA_H */

